[id] - 副本.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839
  1. <template>
  2. <div>
  3. <HomePageHead></HomePageHead>
  4. <HomePageNavigation></HomePageNavigation>
  5. <HomeAdvertising :imgurl="adImg1" v-if="adImg1"></HomeAdvertising>
  6. <!-- 面包屑导航 -->
  7. <div class="breadcrumb phone_none">
  8. <div class="inner">
  9. <span class="location">当前位置:</span>
  10. <el-breadcrumb :separator-icon="ArrowRight">
  11. <el-breadcrumb-item>
  12. <NuxtLink to="/">首页</NuxtLink>
  13. </el-breadcrumb-item>
  14. <el-breadcrumb-item>
  15. <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
  16. </el-breadcrumb-item>
  17. <el-breadcrumb-item>招聘详情</el-breadcrumb-item>
  18. </el-breadcrumb>
  19. </div>
  20. </div>
  21. <div class="breadcrumb_box pc_none">
  22. <span class=" ">当前位置:</span>
  23. <NuxtLink to="/">首页</NuxtLink>
  24. <span class=" ">&gt;</span>
  25. <NuxtLink :to="`/${parent_pinyin}/index.html`"> {{ parent_name }}</NuxtLink>
  26. <span class=" ">&gt;</span>
  27. <span class=" ">招聘详情 </span>
  28. </div>
  29. <!-- 简历 -->
  30. <!-- <main class="gerenjianli" v-if="type == 2">
  31. <section class="index_1 clearfix">
  32. <div class="seek_head_box clearfix">
  33. <div class="seek_head_left">
  34. <a class="seek_head_a seek_head_only" title="">个人简历</a>
  35. </div>
  36. <div class="seek_head_right_box clearfix">
  37. <span class="seek_head_right_text">更新时间:{{ jobInfo.created_at }}</span>
  38. </div>
  39. </div>
  40. <div class="index_1_left clearfix">
  41. <div class="seek_introduce_box clearfix">
  42. <div class="seek_introduce_left clearfix">
  43. <div class="seek_introduce_head clearfix">
  44. <h4 class="seek_introduce_h4">{{ jobInfo.name }}</h4>
  45. <div class="seek_introduce_tag clearfix" v-if="resume">此简历已被推荐</div>
  46. <div class="seek_introduce_text clearfix" v-if="resume">
  47. (已有单位把本简历加入人才库)
  48. </div>
  49. </div>
  50. <div class="seek_introduce_title_box clearfix">
  51. <span class="seek_introduce_label">期望岗位:</span>
  52. <span class="seek_introduce_title">{{ jobInfo.jtzw_name }}</span>
  53. <span class="seek_introduce_label">薪资待遇:</span>
  54. <span class="seek_introduce_title">{{ jobInfo.salary_name }}</span>
  55. </div>
  56. </div>
  57. </div>
  58. <div class="seek_introduce_foot clearfix">
  59. <span class="seek_introduce_foot_text" v-if="jobInfo.sexy">
  60. {{ jobInfo.sexy == 1 ? '男' : '女' }}
  61. </span>
  62. <span class="seek_introduce_foot_text" v-if="jobInfo.birth">
  63. {{ getTime(jobInfo.birth, 'year', 0) }}
  64. </span>
  65. <span class="seek_introduce_foot_text" v-if="jobInfo.origin">
  66. 籍贯:{{ jobInfo.origin }}
  67. </span>
  68. <span class="seek_introduce_foot_text" v-if="jobInfo.education_name">
  69. {{ jobInfo.education_name }}
  70. </span>
  71. <span class="seek_introduce_foot_text" v-if="jobInfo.experience_name">
  72. {{ jobInfo.experience_name }}
  73. </span>
  74. <span class="seek_introduce_foot_text" v-if="jobInfo.hunt_cityname">
  75. 工作地点:{{ jobInfo.hunt_cityname }}
  76. </span>
  77. <span class="seek_introduce_foot_text" v-if="jobInfo.language_name">
  78. {{ jobInfo.language_name }}
  79. </span>
  80. </div>
  81. </div>
  82. <div class="index_1_right clearfix">
  83. <img class="index_1_right_img" src="@/public/image/touxiang.png" title="" alt=""
  84. v-if="!jobInfo.imgurl">
  85. <img class="index_1_right_img" :src="jobInfo.imgurl" title="" alt="" v-if="jobInfo.imgurl">
  86. </div>
  87. </section>
  88. </main> -->
  89. <!-- <main class="jianli" v-if="type == 2">
  90. <section class="index_2 clearfix">
  91. <div class="seek_head_box clearfix">
  92. <div class="seek_head_left">
  93. <a class="seek_head_a seek_head_only" title="">自我介绍</a>
  94. </div>
  95. </div>
  96. <article class="seek_article">
  97. {{ jobInfo.self_evaluation }}
  98. </article>
  99. </section>
  100. <section class="index_3 clearfix">
  101. <div class="seek_head_box clearfix">
  102. <div class="seek_head_left">
  103. <a class="seek_head_a seek_head_only" title="">工作经历</a>
  104. </div>
  105. </div>
  106. <div class="seek_in clearfix" v-for="(item, index) in experienceInfo" :key="index">
  107. <div class="seek_in_head clearfix">
  108. <span class="seek_in_head_text">{{ index + 1 }}.{{ item.company_name }}</span>
  109. <span class="seek_in_head_text">
  110. 职位类别:
  111. {{ item.zw_name }}
  112. </span>
  113. <span class="seek_in_head_text">
  114. 具体职位:
  115. {{ item.jtzw_name }}
  116. </span>
  117. <span class="seek_in_head_text" style="float: right;" v-if="item.job_timeList">
  118. {{ getTime(item.job_timeList[0], 'year', 0) }}
  119. -
  120. {{ getTime(item.job_timeList[1], 'year', 0) }}
  121. </span>
  122. </div>
  123. <div class="seek_in_ul clearfix">
  124. <div class="seek_in_li clearfix">
  125. <label class="seek_in_label">工作内容:</label>
  126. <div class="seek_in_li_text">{{ item.job_content }}</div>
  127. </div>
  128. <div class="seek_in_li clearfix">
  129. <label class="seek_in_label">工作业绩:</label>
  130. <div class="seek_in_li_text">{{ item.performance }}</div>
  131. </div>
  132. </div>
  133. </div>
  134. </section>
  135. <section class="index_4 clearfix">
  136. <div class="seek_head_box clearfix">
  137. <div class="seek_head_left">
  138. <a class="seek_head_a seek_head_only" title="">教育背景</a>
  139. </div>
  140. </div>
  141. <div class="seek_in clearfix" v-for="(item, index) in education" :key="index">
  142. <div class="seek_in_head clearfix">
  143. <span class="seek_in_head_text"
  144. v-if="item.school_name || item.education_name || item.school_major || item.school_timeList">
  145. {{ index + 1 }}. {{ item.school_name }} {{ education }}
  146. </span>
  147. <span class="seek_in_head_text">
  148. {{ item.education_name }}
  149. </span>
  150. <span class="seek_in_head_text">{{ item.school_major }}</span>
  151. <span class="seek_in_head_text" style="float: right;" v-if="item.school_timeList">
  152. {{ getTime(item.school_timeList[0], 'year', 0) }}
  153. -
  154. {{ getTime(item.school_timeList[1], 'year', 0) }}
  155. </span>
  156. </div>
  157. <div class="seek_in_ul clearfix" v-if="item.school_experience">
  158. <div class="seek_in_li clearfix">
  159. <label class="seek_in_label">在校经历:</label>
  160. <div class="seek_in_li_text">{{ item.school_experience }}</div>
  161. </div>
  162. </div>
  163. </div>
  164. </section>
  165. <section class="index_5 clearfix">
  166. <div class="seek_head_box clearfix">
  167. <div class="seek_head_left">
  168. <a class="seek_head_a seek_head_only" title="">专业技能</a>
  169. </div>
  170. </div>
  171. <div class="seek_in clearfix">
  172. <div class="seek_in_ul clearfix">
  173. <div class="seek_in_li clearfix" v-for="(item, index) in skillList">
  174. <label class="seek_in_label" v-if="item.skill">{{ index + 1 }}.</label>
  175. <div class="seek_in_li_text">{{ item.skill }}</div>
  176. </div>
  177. </div>
  178. </div>
  179. </section>
  180. <section class="index_6 clearfix">
  181. <div class="seek_head_box clearfix">
  182. <div class="seek_head_left">
  183. <a class="seek_head_a seek_head_only" title="">联系方式</a>
  184. </div>
  185. </div>
  186. <div class="seek_in clearfix" v-if="type_id == 10000 || type_id == 3">
  187. <article class="seek_article_2">
  188. {{ jobInfo.phone }}
  189. </article>
  190. </div>
  191. <div class="seek_in clearfix" v-else>
  192. <article class="seek_article_2">
  193. 登录后可查看
  194. </article>
  195. </div>
  196. </section>
  197. </main> -->
  198. <!-- 岗位 -->
  199. <div class="gangwei" v-if="type == 1">
  200. <main class="color_main phone_none">
  201. <main class="index_main">
  202. <section class="index_1 clearfix">
  203. <div class="cruit_head_box clearfix">
  204. <div class="cruit_head_left">
  205. <a class="cruit_head_a cruit_head_only" title="">基本信息</a>
  206. </div>
  207. </div>
  208. <div class="index_1_box clearfix">
  209. <div class="demand_head_box clearfix">
  210. <div class="demand_head_name">{{ jobInfo.title }}</div>
  211. <div class="demand_head_btn hand" v-if="type_id == 1" @click="applyJob">申请该职位</div>
  212. <div class="demand_head_btn1" v-if="type_id != 1">申请该职位</div>
  213. </div>
  214. <div class="cruit_li_2_foot clearfix">
  215. <span class="cruit_li_2_foot_tag cruit_li_2_foot_exper">
  216. {{ jobInfo.hy_name }}
  217. &gt;
  218. {{ jobInfo.zw_name }}
  219. </span>
  220. <span class="cruit_li_2_foot_tag cruit_li_2_foot_addres">{{ jobInfo.city_name }}</span>
  221. </div>
  222. </div>
  223. </section>
  224. </main>
  225. </main>
  226. <main class="index_main phone_none">
  227. <section class="index_2 clearfix">
  228. <div class="demand_1 clearfix">
  229. <div class="demand_left_1 clearfix">
  230. <div class="cruit_head_box clearfix ">
  231. <div class="cruit_head_left">
  232. <a class="cruit_head_a cruit_head_only" title="">基本要求</a>
  233. </div>
  234. </div>
  235. <div class="demand_ul_2">
  236. <div class="demand_li_2 clearfix">
  237. <div class="demand_li_2_label">工作性质:</div>
  238. <div class="demand_li_2_text clearfix">{{ jobInfo.job_nature_name }}</div>
  239. </div>
  240. <div class="demand_li_2 clearfix">
  241. <div class="demand_li_2_label">工作经验:</div>
  242. <div class="demand_li_2_text clearfix">{{ jobInfo.experience_name }}</div>
  243. </div>
  244. <div class="demand_li_2 clearfix">
  245. <div class="demand_li_2_label">学历文凭:</div>
  246. <div class="demand_li_2_text clearfix">{{ jobInfo.education_name }}</div>
  247. </div>
  248. <div class="demand_li_2 clearfix">
  249. <div class="demand_li_2_label">语言选择:</div>
  250. <div class="demand_li_2_text clearfix">{{ jobInfo.language_name }}</div>
  251. </div>
  252. <div class="demand_li_2 clearfix">
  253. <div class="demand_li_2_label">薪资待遇:</div>
  254. <div class="demand_li_2_text clearfix">{{ jobInfo.salary_name }}</div>
  255. </div>
  256. <div class="demand_li_2 clearfix">
  257. <div class="demand_li_2_label">截止日期:</div>
  258. <div class="demand_li_2_text clearfix">
  259. {{ getTime(jobInfo.created_at, 'year', 1) }}
  260. </div>
  261. </div>
  262. </div>
  263. </div>
  264. <div class="demand_left_2 clearfix">
  265. <div class="cruit_head_box clearfix ">
  266. <div class="cruit_head_left">
  267. <a class="cruit_head_a cruit_head_only" title="">岗位职责</a>
  268. </div>
  269. </div>
  270. <article class="demand_article_1">
  271. {{ jobInfo.description }}
  272. </article>
  273. </div>
  274. <div class="demand_left_3 clearfix">
  275. <div class="cruit_head_box clearfix">
  276. <div class="cruit_head_left">
  277. <a class="cruit_head_a cruit_head_only" title="">具体要求</a>
  278. </div>
  279. </div>
  280. <article class="demand_article_1">
  281. {{ jobInfo.jt_description }}
  282. </article>
  283. </div>
  284. <div class="demand_left_4 clearfix">
  285. <div class="cruit_head_box clearfix">
  286. <div class="cruit_head_left">
  287. <a class="cruit_head_a cruit_head_only" title="">联系方式</a>
  288. </div>
  289. </div>
  290. <div class="demand_ul_2">
  291. <div class="demand_li_2 clearfix">
  292. <div class="demand_li_2_label">地址:</div>
  293. <div class="demand_li_2_text clearfix">{{ companyInfo.address_name }}</div>
  294. </div>
  295. <div class="demand_li_2 clearfix">
  296. <div class="demand_li_2_label">邮箱:</div>
  297. <div class="demand_li_2_text clearfix">{{ companyInfo.email }}</div>
  298. </div>
  299. </div>
  300. </div>
  301. <div class="demand_left_5 clearfix">
  302. <div class="cruit_head_box clearfix">
  303. <div class="cruit_head_left">
  304. <a class="cruit_head_a cruit_head_only" title="">公司介绍</a>
  305. </div>
  306. </div>
  307. <div class="demand_ul_2">
  308. <div class="demand_li_2 clearfix">
  309. <div class="demand_li_2_label">公司规模:</div>
  310. <div class="demand_li_2_text clearfix">{{ companyInfo.company_size_name }}</div>
  311. </div>
  312. <div class="demand_li_2 clearfix">
  313. <div class="demand_li_2_label">公司性质:</div>
  314. <div class="demand_li_2_text clearfix">{{ companyInfo.company_nature_name }}</div>
  315. </div>
  316. <div class="demand_li_2 clearfix">
  317. <div class="demand_li_2_label">公司行业:</div>
  318. <div class="demand_li_2_text clearfix">{{ companyInfo.hy_name }}</div>
  319. </div>
  320. </div>
  321. </div>
  322. </div>
  323. <div class="demand_2 clearfix phone_none">
  324. <div class="demand_right_1 clearfix">
  325. <div class="cruit_head_box clearfix">
  326. <div class="cruit_head_left">
  327. <a class="cruit_head_a cruit_head_only" title="">招聘单位</a>
  328. </div>
  329. </div>
  330. <div class="demand_ul_1">
  331. <span class="demand_ul_1_span dot1">
  332. {{ companyInfo.business_name }}
  333. </span>
  334. </div>
  335. </div>
  336. <div class="demand_right_2 clearfix">
  337. <div class="cruit_head_box clearfix">
  338. <div class="cruit_head_left">
  339. <a class="cruit_head_a cruit_head_only" title="">其他职位</a>
  340. </div>
  341. </div>
  342. <div class="demand_ul_1">
  343. <NuxtLink class="demand_ul_1_a dot1" :href="`/${item.pinyin}/${item.id}.html`" title=""
  344. v-for="(item, index) in other_job" :key="item.id">
  345. {{ item.title }}
  346. </NuxtLink>
  347. </div>
  348. </div>
  349. </div>
  350. </section>
  351. </main>
  352. <main class="phone_index_main pc_none">
  353. <div class="phone_box_1">
  354. <div class="phone_box_name">{{ jobInfo.title }}</div>
  355. <div class="phone_box_tag_tip clearfix">
  356. <span class="cruit_li_2_foot_tag cruit_li_2_foot_exper">
  357. {{ jobInfo.hy_name }}
  358. &gt;
  359. {{ jobInfo.zw_name }}
  360. </span>
  361. <span class="cruit_li_2_foot_tag cruit_li_2_foot_addres">
  362. {{ jobInfo.city_name }}
  363. </span>
  364. </div>
  365. </div>
  366. <div class="phone_box_2">
  367. <div class="phone_box_head">
  368. <a title="">基本要求</a>
  369. </div>
  370. <div class="demand_ul_2">
  371. <div class="demand_li_2 clearfix">
  372. <div class="demand_li_2_label">工作性质:</div>
  373. <div class="demand_li_2_text clearfix">{{ jobInfo.job_nature_name }}</div>
  374. </div>
  375. <div class="demand_li_2 clearfix">
  376. <div class="demand_li_2_label">工作经验:</div>
  377. <div class="demand_li_2_text clearfix">{{ jobInfo.experience_name }}</div>
  378. </div>
  379. <div class="demand_li_2 clearfix">
  380. <div class="demand_li_2_label">学历文凭:</div>
  381. <div class="demand_li_2_text clearfix">{{ jobInfo.education_name }}</div>
  382. </div>
  383. <div class="demand_li_2 clearfix">
  384. <div class="demand_li_2_label">语言选择:</div>
  385. <div class="demand_li_2_text clearfix">{{ jobInfo.language_name }}</div>
  386. </div>
  387. <div class="demand_li_2 clearfix">
  388. <div class="demand_li_2_label">薪资待遇:</div>
  389. <div class="demand_li_2_text clearfix">{{ jobInfo.salary_name }}</div>
  390. </div>
  391. <div class="demand_li_2 clearfix">
  392. <div class="demand_li_2_label">截止日期:</div>
  393. <div class="demand_li_2_text clearfix">
  394. {{ getTime(jobInfo.created_at, 'year', 1) }}
  395. </div>
  396. </div>
  397. </div>
  398. </div>
  399. </main>
  400. </div>
  401. <HomeAdvertising :imgurl="adImg2" v-if="adImg2"></HomeAdvertising>
  402. <HomeFoot1></HomeFoot1>
  403. </div>
  404. </template>
  405. <script setup>
  406. import { ref, reactive } from 'vue'
  407. import { ElBreadcrumb, ElBreadcrumbItem, ElMessage } from 'element-plus'
  408. import { ArrowRight } from '@element-plus/icons-vue'
  409. const route = useRoute();
  410. const type = ref(1);
  411. const nuxtApp = useNuxtApp();
  412. const axios = nuxtApp.$axios;
  413. //获取用户信息
  414. let type_id = ref('')
  415. let website_id = ref('')
  416. let getUserInfo = () => {
  417. axios.get("/user/getUserInfo").then(response => {
  418. console.log("gettypeid", response.data);
  419. type_id.value = response.data.type_id
  420. website_id.value = response.data.website_id
  421. })
  422. }
  423. onMounted(() => {
  424. getUserInfo()
  425. })
  426. //1.1 获得跳转过来的id
  427. const articleId = parseInt(route.params.id); //获得该页面的id
  428. // const existingArr = [];
  429. const articleIdArr = reactive([articleId]);
  430. // let articleIdArr = Array.of(articleId);
  431. // console.log('111222111', articleId);
  432. //1.2 获得父级栏目的名称、id
  433. //获得当前的完整路径
  434. const fullPath = route.path;
  435. //拆分,取出来中间这一段,然后提取数字部分
  436. const segments = fullPath.split('/');
  437. const targetSegment = segments[1];
  438. const targetRoute = segments[2];
  439. console.log("targetSegment1", targetSegment);
  440. console.log("targetSegment2", targetRoute);
  441. let routeId;
  442. //通过导航路径反向查询导航id
  443. const getRouteId = await requestDataPromise('/web/getWebsiteRoute', {
  444. method: 'GET',
  445. query: {
  446. 'pinyin': targetSegment,
  447. },
  448. });
  449. if (getRouteId.code == 200) {
  450. routeId = getRouteId.data.category_id
  451. } else {
  452. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  453. // console.log("错误位置:通过url路径查询导航池id")
  454. // console.log("后端错误反馈:", getRouteId.message)
  455. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  456. }
  457. //1.3 面包屑导航
  458. const parent_name = ref("");
  459. const parent_id = ref("");
  460. const parent_pinyin = ref("");
  461. let getParentNav = async () => {
  462. const listData = await requestDataPromise('/web/getOneWebsiteCategory', {
  463. method: 'GET',
  464. query: {
  465. 'catid': routeId
  466. },
  467. });
  468. if (listData.code == 200) {
  469. parent_name.value = listData.data.alias;
  470. parent_id.value = listData.data.parent_id;
  471. parent_pinyin.value = listData.data.aLIas_pinyin;
  472. } else {
  473. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  474. // console.log("错误位置:获取面包屑导航")
  475. // console.log("后端错误反馈:", listData.message)
  476. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  477. }
  478. }
  479. //获得父级栏目详情
  480. getParentNav();
  481. //1.4 展示广告
  482. let adImg1 = ref({})
  483. let adImg2 = ref({})
  484. onMounted(async () => {
  485. //从客户端获取行政职能部门 加快打开速度
  486. const { $webUrl, $CwebUrl } = useNuxtApp();
  487. //广告1
  488. let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_detail_0001`
  489. const responseAd1 = await fetch(url, {
  490. headers: {
  491. 'Content-Type': 'application/json',
  492. 'Userurl': $CwebUrl,
  493. 'Origin': $CwebUrl
  494. }
  495. });
  496. const resultAd1 = await responseAd1.json();
  497. adImg1.value = resultAd1.data[0];
  498. //广告2
  499. let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=nmgw_detail_0002`
  500. const responseAd2 = await fetch(url2, {
  501. headers: {
  502. 'Content-Type': 'application/json',
  503. 'Userurl': $CwebUrl,
  504. 'Origin': $CwebUrl
  505. }
  506. });
  507. const resultAd2 = await responseAd2.json();
  508. adImg2.value = resultAd2.data[0];
  509. })
  510. // 2 获取详情
  511. let jobInfo = ref([]) //基本信息
  512. let companyInfo = ref([])// 公司介绍
  513. let category = ref([]) // 栏目
  514. let other_job = ref([]) // 岗位
  515. let experienceInfo = ref([]) // 工作经历
  516. let education = ref([]) // 教育背景
  517. let skillList = ref([]) // 专业技能
  518. let resume = ref(0)
  519. const getDetail = async () => {
  520. const listData = await requestDataPromise('/web/getWebsiteJobInfo', {
  521. method: 'GET',
  522. query: {
  523. 'id': articleId,
  524. 'type': type.value,
  525. 'pageSize': 10,
  526. },
  527. });
  528. if (listData.code == 200) {
  529. console.log("详情1111", listData.data);
  530. // console.log("详情1111222", listData.data.job[0].job_experience);
  531. // console.log("详情111122233", JSON.parse(listData.data.job[0].job_experience));
  532. // console.log("详情1111222233344", JSON.parse(listData.data.job[0].education_experience));
  533. // jobInfo.value = listData.data.job[0];
  534. // category.value = listData.data.category;
  535. if (type.value == 1) {
  536. jobInfo.value = listData.data.job[0];
  537. category.value = listData.data.category;
  538. companyInfo.value = listData.data.company[0];
  539. other_job.value = listData.data.other_job;
  540. }
  541. if (type.value == 2) {
  542. jobInfo.value = listData.data.job[0];
  543. category.value = listData.data.category;
  544. experienceInfo.value = listData.data.job_experience;
  545. education.value = listData.data.education_experience;
  546. skillList.value = JSON.parse(listData.data.job[0].skillList);
  547. resume.value = listData.data.resume;
  548. }
  549. }
  550. }
  551. getDetail();
  552. //获取行业 职位 具体职位
  553. const industry_categoryList = ref([]) //行业类别列表
  554. const position_categoryList = ref([]) //职位类别列表
  555. const positionList = ref([]) //具体职位列表
  556. const getData = async () => {
  557. const getData = await requestDataPromise('/web/getWebsiteJobSelect', {
  558. method: 'GET',
  559. query: {},
  560. });
  561. if (getData.code == 200) {
  562. // console.log("获取到的分类数据:", getData.data);
  563. industry_categoryList.value = getData.data.hy; //行业
  564. position_categoryList.value = getData.data.zw; //职位
  565. positionList.value = getData.data.jtzw; //具体职位
  566. }
  567. }
  568. getData()
  569. // 3 申请该职位
  570. const applyJob = () => {
  571. // console.log("点击了申请该职位", typeof website_id.value);
  572. // console.log("点击了申请该职位", articleIdArr);
  573. axios.post('/web/getWebsiteJobApply', {
  574. website_id: website_id.value,
  575. recruit_id: articleIdArr,
  576. }).then(response => {
  577. // console.log("申请该职位11111111", response);
  578. if (response.code == 200) {
  579. ElMessage({
  580. message: '申请成功',
  581. type: 'success',
  582. });
  583. } else {
  584. ElMessage({
  585. message: response.message,
  586. type: 'error',
  587. });
  588. }
  589. }).catch(error => {
  590. console.error('Error:', error);
  591. });
  592. }
  593. //4.设置seo信息 start---------------------------------------->
  594. //4.1 设置seo信息
  595. let seoTitle;
  596. let seoDescription;
  597. let seoKeywords;
  598. const listData = await requestDataPromise('/web/getWebsiteJobInfo', {
  599. method: 'GET',
  600. query: {
  601. 'id': articleId,
  602. 'type': type.value,
  603. 'pageSize': 10,
  604. },
  605. });
  606. if (listData.code == 200) {
  607. // console.log("详情1111", listData.data);
  608. seoTitle = listData.data.job[0].title;
  609. seoDescription = listData.data.job[0].seo_description;
  610. seoKeywords = listData.data.job[0].keyword;
  611. }
  612. const setData = await requestDataPromise('/web/getWebsiteCategoryHead', {
  613. method: 'GET',
  614. query: {
  615. 'catid': routeId,
  616. },
  617. });
  618. if (setData.code == 200) {
  619. let seoSuffix = setData.data.suffix;
  620. let seoName = setData.data.website_name;
  621. useSeoMeta({
  622. title: seoTitle + "_" + seoName + "_" + seoSuffix,
  623. meta: [
  624. { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  625. { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix, tagPriority: 10 },
  626. { name: 'viewport', content: 'width=device-width,initial-scale=1,user-scalable=no',tagPriority: 10 }
  627. ]
  628. });
  629. } else {
  630. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  631. // console.log("错误位置:设置列表页面SEO数据")
  632. // console.log("后端错误反馈:", setData.message)
  633. // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->")
  634. }
  635. //4.设置seo信息 end---------------------------------------->
  636. </script>
  637. <style scoped lang="less">
  638. @import "@/assets/css/zgzpjianli.less";
  639. @import "@/assets/css/zgzpzhaopin.less";
  640. </style>
  641. <style lang="less" scoped>
  642. @media screen and (min-width:801px){/*pc*/
  643. .pc_none{display:none;}
  644. }
  645. @media screen and (max-width:800px){/*ipad_phone*/
  646. .breadcrumb_box {
  647. height: 22px;
  648. width: 92%;
  649. margin: 10px auto;
  650. word-break: keep-all;
  651. white-space: nowrap;
  652. overflow: hidden;
  653. text-overflow: ellipsis;
  654. width: 92%;
  655. font-size: 14px;
  656. color: #666;
  657. * {
  658. font-size: 14px;
  659. display: inline;
  660. color: #666;
  661. line-height: 22px;
  662. height: 22px;
  663. margin-right: 5px;
  664. }
  665. }
  666. .index_main{
  667. width: 92%;
  668. margin: 0 auto;
  669. }
  670. .index_1{ width: 100%; }
  671. .demand_1{width:100%;float:none;}
  672. .demand_li_2{margin-bottom:4px;}
  673. .demand_li_2_label{font-size:14px;}
  674. .demand_li_2_text{font-size:14px;}
  675. .demand_ul_2{margin-top:11px;}
  676. .gangwei{margin-top:0px;}
  677. .phone_index_main{background:#fbfbfb;background:teal;
  678. border-top:solid 1px #fbfbfb;
  679. border-bottom:solid 1px #fbfbfb;
  680. }
  681. .phone_box_1 {
  682. width: 92%;background:#fff;border-radius:10px;
  683. border:solid 1px #fff;padding:0px 10px;
  684. margin: 10px auto;box-sizing:border-box;
  685. .phone_box_name{
  686. font-size: 18px;
  687. font-weight: bold;
  688. color: #333;
  689. margin:10px auto;
  690. }
  691. .cruit_li_2_foot_tag{
  692. background-size:16px 70%;padding-left:16px;
  693. font-size:12px;
  694. }
  695. .cruit_li_2_foot_tag:nth-last-of-type(1){
  696. margin-right:0px;
  697. }
  698. .phone_box_tag_tip{margin-bottom:10px;}
  699. }
  700. .phone_box_2{
  701. width: 92%;background:#fff;border-radius:10px;
  702. border:solid 1px #fff;padding:0px 10px 8px;
  703. margin: 10px auto;box-sizing:border-box;
  704. .phone_box_head {
  705. height: 50px;
  706. line-height: 50px;
  707. background: #fff;
  708. border-bottom: 1px solid #E6E6E6;
  709. width: 100%;
  710. a {
  711. float: left;
  712. height: 50px;
  713. line-height: 50px;
  714. margin: 0;
  715. position: relative;
  716. color: #489d97;
  717. font-size: 18px;
  718. font-weight: bold;
  719. box-sizing: border-box;
  720. position: relative;
  721. padding-left: 8px;
  722. }
  723. a::before {
  724. content: '';
  725. display: block;
  726. position: absolute;
  727. left: 0px;
  728. top: 18px;
  729. background: linear-gradient(to top, #0998A9, #6ADDD6);
  730. width: 3px;
  731. height: 15px;
  732. }
  733. }
  734. }
  735. .demand_article_1{
  736. font-size: 16px!important;
  737. line-height: 26px!important;
  738. margin-top: 15px!important
  739. }
  740. .demand_article_1,.demand_article_1 * {
  741. font-size: 16px!important;
  742. line-height: 26px!important;
  743. margin-top: 15px!important
  744. }
  745. .phone_none{display:none;}
  746. }
  747. </style>